/*
Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.

Note: You may not slant the container (assume container is square-shaped)
*/

class Solution {
public:
    int maxArea(vector<int> &height) {
        int i = 0, j = height.size()-1;
        int maxarea = 0;
        while (i < j) {
            int hleft = height[i];
            int hright = height[j];
            int area = min(hleft, hright) * (j - i);
            if (area > maxarea) maxarea = area;
            if (hleft <= hright) i++;
            if (hleft >= hright) j--;
        }
        return maxarea;
    }
};
